package com.guigu.qingcheng.controller;

import com.guigu.qingcheng.service.GoodsServiceFeign;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.Map;

@Controller
public class SearchController {

    @Autowired
    private GoodsServiceFeign goodsServiceFeign;

    @GetMapping("/search")
    public String search(Model model,@RequestParam Map<String, String> searchMap) throws Exception {
        // 字符集处理
//        searchMap = WebUtil.convertCharsetToUTF8(searchMap);
        //没有页码的话就默认为1
        if(searchMap.get("pageNo") == null){
            searchMap.put("pageNo", "1");
        }

        //页面传递两个参数 sort 排序字段， sortOrder排序规则（升序降序
        if(searchMap.get("sort") == null){//排序字段
            searchMap.put("sort", "");
        }
        if(searchMap.get("sortOrder") == null){//排序规则
            searchMap.put("sortOrder", "DESC");
        }



        Map result = goodsServiceFeign.search(searchMap);

        model.addAttribute("result", result);

        //url处理
        StringBuffer url=new StringBuffer("/web/search?");
        for(String key:searchMap.keySet()){
            url.append( "&"+key+"="+ searchMap.get(key) );
        }
        model.addAttribute("url",url);

        model.addAttribute("searchMap",searchMap);

        // 页码
        int pageNo = Integer.parseInt(searchMap.get("pageNo"));
        model.addAttribute("pageNo", pageNo);

        int totalPages = (int) result.get("totalPages");//得到总页数

        int startPage = 1;//开始页码
        int endPage = totalPages;//截止代码

        if(totalPages > 5){
            startPage = pageNo-2;
            if(startPage < 1){
                startPage = 1;
            }
            endPage = startPage + 4;
        }

        model.addAttribute("startPage",startPage);
        model.addAttribute("endPage",endPage);
        return "search";
    }


}
